package com.tc.service;

import com.tc.domain.Sys_user;
import com.tc.vo.MenuVO;
import com.tc.vo.RoleVO;
import com.tc.vo.UserInfoVO;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 用户信息服务类
 * </p>
 *
 * @author tc
 * @since 2025-07-10
 */
public interface ISys_userService extends IService<Sys_user> {

    /**
     * 根据用户名查询用户信息
     * 
     * @param username 用户名
     * @return 用户信息
     */
    Sys_user getByUsername(String username);

    /**
     * 根据用户ID查询用户详细信息
     * 
     * @param userId 用户ID
     * @return 用户详细信息
     */
    UserInfoVO getUserInfo(Long userId);

    /**
     * 根据用户ID查询用户角色列表
     * 
     * @param userId 用户ID
     * @return 角色列表
     */
    List<RoleVO> getUserRoles(Long userId);

    /**
     * 根据用户ID查询用户菜单权限
     * 
     * @param userId 用户ID
     * @return 菜单权限树
     */
    List<MenuVO> getUserMenus(Long userId);

    /**
     * 更新用户最后登录时间
     * 
     * @param userId 用户ID
     */
    void updateLastLoginTime(Long userId);
}
